Traditionally, typeahead is a technique for identifying suggestions for completing a term as the user types the term into a search box. Most implementations of typeahead involve sequentially sending each character entered by a user from a client to a server component for analysis. Based on the analysis, the server provides suggestions to the client, which are then displayed to the user. Typeahead suggestions can help to speed up the process of searching, avoid potential misspellings and/or typographical errors, and assist the user in recalling information based on partial or incomplete search terms.
Despite these benefits, typeahead analysis can be computationally expensive and prohibitively slow in certain applications. Furthermore, one of the most important aspects of typeahead functionality can be the relevancy of the provided suggestions. Irrelevant or uninteresting typeahead suggestions can actually be a burden to users, and can result in a difficult and distracting user experience.